Data storage systems are arrangements of hardware and software that include storage processors coupled to arrays of non-volatile storage devices. In typical operation, storage processors service storage requests that arrive from client machines. The storage requests specify data objects (e.g., file systems, LUNs, vVols, and the like) to be accessed, overwritten, created, or deleted, for example. The storage processors run software that manages incoming storage requests and performs various data processing tasks to organize and secure the data stored on the non-volatile storage devices.
Data storage systems may implement snapshot technology to protect the data objects they store. For example, a data storage system may present a data object to a host machine. The host machine accesses the data object and can make changes to its contents over time. To protect the data object and its state at various points in time, the data storage system may take snapshots, or “snaps,” of the data object at regular intervals or in response to user commands or particular events. Each snap provides a point-in-time version of the data object that users of host machines can access to restore from a previous version of the data object, such as to resume use of the data object from a previous, known-good state. Users may also restore from snaps to examine previous states of a data object, such as for historical or forensic purposes.
Data storage systems typically manage snaps and allow host machines to create, access, and delete snaps as needed. To this end, data storage systems may create and store attributes of snaps to facilitate their administration and control Attributes of snaps may include, for example, snap labels, retention policy, and whether snaps are read-only or read/write.